package com.longe.service;

import com.longe.fallback.ProviderServiceFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 声明需要调用的微服务名称
 *  @FeignClient
 *      * name : 服务提供者的名称
 *      * fallback : 配置熔断发生降级方法
 *                  实现类
 */
@FeignClient(value = "provider-server", fallback = ProviderServiceFallBack.class)
public interface ProviderService {

    /**
     * @FeignClient(value = "provider-service") 和 @RequestMapping("provider")
     * 唯一确定了是请求 provider模块中的provider接口。
     * @return
     */
    @RequestMapping("provider")
    String requestProviderService(@RequestParam(value = "id") Integer id);

    @RequestMapping("provider/two")
    String requestProviderServiceTwo();
}